import { loginAPI } from '@/api/user';
import { getToken, setToken, removeToken } from '@/utils/auth';

export default {
  namespaced: true,
  state: {
    token: getToken() || '',
  },
  //mutations中的方法只有一种调用方式，store.commit进行调用
  mutations: {
    setToken(state, newToken) {
      state.token = newToken;
      setToken(newToken);
    },
    removeToken(state) {
      state.token = '';
      removeToken();
    }
  },
  actions: {
    async loginAction(store, data) {
      try {
        const res = await loginAPI(data);
        store.commit('setToken', res.data.token);
        // 使用回调函数或 Promise 链处理路由导航
        return res.data.token; // 返回 token，以便在组件中处理路由导航
      } catch (error) {
        throw error; // 抛出错误，以便在组件中处理
      }
    }
  }
}
